#include "um/updatemanager.h"

namespace yoohoo_um {

UpdateManager::UpdateManager(QDir appDir) : _appDir(appDir) {
}

void UpdateManager::run() {
	QStringList updateConfigBaseNames;
	QDir updatesConfigDir(_appDir);
	if (updatesConfigDir.cd("config") && updatesConfigDir.cd("updates")) {
		foreach (QFileInfo entryInfo, updatesConfigDir.entryInfoList()) {
			if (entryInfo.isFile() && "xml" == entryInfo.suffix()) {
				updateConfigBaseNames << entryInfo.baseName();
			}
		}
	}

	QStringList updates;
	QDir updatesDir(_appDir);
	if (updatesDir.cd("updates")) {
		foreach (QFileInfo entryInfo, updatesDir.entryInfoList()) {
			if (entryInfo.isDir()) {
				updates << entryInfo.baseName();
			}
		}
	}

	foreach (QString updateConfigBaseName, updateConfigBaseNames) {
		if (!updates.contains(updateConfigBaseName)) {
			uninstallUpdate(updateConfigBaseName);
		}
	}

	foreach (QString update, updates) {
		if (!updateConfigBaseNames.contains(update)) {
			installUpdate(update);
		}
	}
}

void UpdateManager::installUpdate(QString update) {
	// TODO
}

void UpdateManager::uninstallUpdate(QString updateConfigBaseName) {
	// TODO
}

}
